<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    
</body>
<script>
    /*对象：具体的事物，包括属性和行为
    属性：对象中的变量；行为：属性中的方法（函数）
    如何创建对象
       1.字面量创建对象，使用较多
       2.用构造函数创建对象
       3.用Object()创建对象
    */
   //字面量创建对象
   let cat={
    color:'white',
    eye:'棕色',
    weight:'15kg',
    run:function(){
        console.log('running');
    }
   }
   //访问对象
   console.log(cat.color);  //打印猫的颜色
   cat.run();
   let kq={}  //空对象
   console.log('----用构造函数创建对象----');
   //构造函数：是一种特殊的函数，能通过这个函数构造一个对象(new)。为区别于普通函数，一般构造函数名的首字母大写。
   /*step1: 定义一个构造函数，在函数中描述对象的属性和行为
     step2: 用关键字new实例化一个对象
   */
  function Dog(name,age,weight,color){
    //this关键词:指当前对象
    this.name=name;
    this.age=age;
    this.weight=weight;
    this.color=color;
    this.dance=function(){
        //${this.name}  模板字符
        console.log(`${this.name}在跳舞...`);
    }
  }
  //构造对象：用new关键字实例化对象
   let dog= new Dog('旺财',2,'10kg','白色');
   console.log(dog.name);
   console.log(dog.color);
   dog.dance();
   let wang=new Dog('富贵',3,'15kg','黑色');
   console.log(wang.weight);
   wang.dance();
   let obj=new Object();  //实例化一个空的object
   obj.name='李斯';
   obj.age=19;
   obj.cls='计算机三班';
   obj.play=function(){
    console.log(obj.name+"在打游戏")
   };
   //访问对象
   console.log(obj.cls);
   obj.play();
   console.log('---------------');
   let objs=new Object();
   objs.title='上海：为世界城市提供三大“公共产品”';
   objs.time='2023年10月31日';
   objs.name='张三，姚玉洁的的报道';
   objs.content=function(){
    console.log('新华社北京10月31日电  10月31日，《新华每日电讯》.....');
   }
   console.log(objs.title);
   console.log(objs.name);
   objs.content();
</script>
</html>